﻿using System;
namespace Kis.Xroad.Eu {
    
    
    [System.SerializableAttribute()]
    public partial class ConstructorTest : global::Kis.Xroad.Eu.ConstructorTestExtension {
        
        private global::Kis.Xroad.Eu.PositiveCelcius @__cTProp;
        
        private global::Kis.Xroad.Eu.PositiveCelcius @__cTProp1;
        
        private global::Kis.Xroad.Eu.PositiveCelcius @__cTProp2;
        
        private global::Kis.Xroad.Eu.PositiveCelcius @__cTProp3;
        
        public ConstructorTest() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public ConstructorTest(
                    global::Kis.Xroad.Eu.PositiveCelcius @cTProp, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cTProp1, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cTProp2, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cTProp3, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cT2Prop, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cT2Prop1, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cT2Prop2, 
                    global::Kis.Xroad.Eu.PositiveCelcius @cT2Prop3, 
                    System.Collections.Generic.List<global::Kis.Xroad.Eu.Sequence> @aMin1MazUnboundedNil, 
                    System.Collections.Generic.List<global::Kis.Xroad.Eu.Sequence> @aMin1MazUnboundedNonNil, 
                    System.Collections.Generic.List<global::Kis.Xroad.Eu.Sequence> @bMin0MazUnboundedNonNil, 
                    System.Collections.Generic.List<global::Kis.Xroad.Eu.Sequence> @bMin0MazUnboundedNil, 
                    global::Kis.Xroad.Eu.Sequence @cMin0Maz1Nil, 
                    global::Kis.Xroad.Eu.Sequence @cMin0Maz1NonNil, 
                    global::Kis.Xroad.Eu.Sequence @dMin1Maz1Nil, 
                    global::Kis.Xroad.Eu.Sequence @dMin1Maz1NonNil) : 
                base(@cT2Prop, @cT2Prop1, @cT2Prop2, @cT2Prop3, @aMin1MazUnboundedNil, @aMin1MazUnboundedNonNil, @bMin0MazUnboundedNonNil, @bMin0MazUnboundedNil, @cMin0Maz1Nil, @cMin0Maz1NonNil, @dMin1Maz1Nil, @dMin1Maz1NonNil) {
            this.@__cTProp = @cTProp;
            this.@__cTProp1 = @cTProp1;
            this.@__cTProp2 = @cTProp2;
            this.@__cTProp3 = @cTProp3;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public ConstructorTest(global::Kis.Xroad.Eu.PositiveCelcius @cTProp2, global::Kis.Xroad.Eu.PositiveCelcius @cT2Prop2, System.Collections.Generic.List<global::Kis.Xroad.Eu.Sequence> @aMin1MazUnboundedNonNil, global::Kis.Xroad.Eu.Sequence @dMin1Maz1NonNil) : 
                base(@cT2Prop2, @aMin1MazUnboundedNonNil, @dMin1Maz1NonNil) {
            this.@__cTProp2 = @cTProp2;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected ConstructorTest(ConstructorTest @constructorTest) : 
                base(@constructorTest.CT2Prop, @constructorTest.CT2Prop1, @constructorTest.CT2Prop2, @constructorTest.CT2Prop3, @constructorTest.AMin1MazUnboundedNil, @constructorTest.AMin1MazUnboundedNonNil, @constructorTest.BMin0MazUnboundedNonNil, @constructorTest.BMin0MazUnboundedNil, @constructorTest.CMin0Maz1Nil, @constructorTest.CMin0Maz1NonNil, @constructorTest.DMin1Maz1Nil, @constructorTest.DMin1Maz1NonNil) {
            this.@__cTProp = @constructorTest.CTProp;
            this.@__cTProp1 = @constructorTest.CTProp1;
            this.@__cTProp2 = @constructorTest.CTProp2;
            this.@__cTProp3 = @constructorTest.CTProp3;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        public ConstructorTest(ConstructorTestExtension @constructorTestExtension) : 
                base(@constructorTestExtension) {
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        public ConstructorTest(XsdMinOccursMaxOccursComplexTypes @xsdMinOccursMaxOccursComplexTypes) : 
                base(@xsdMinOccursMaxOccursComplexTypes) {
        }
        
        public virtual global::Kis.Xroad.Eu.PositiveCelcius CTProp {
            get {
                return this.@__cTProp;
            }
            set {
                this.@__cTProp = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.PositiveCelcius CTProp1 {
            get {
                return this.@__cTProp1;
            }
            set {
                this.@__cTProp1 = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.PositiveCelcius CTProp2 {
            get {
                return this.@__cTProp2;
            }
            set {
                this.@__cTProp2 = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.PositiveCelcius CTProp3 {
            get {
                return this.@__cTProp3;
            }
            set {
                this.@__cTProp3 = value;
            }
        }
    }
}
